package com.baishancloud.log.common.connector

import java.io.Serializable

/**
 * 用来存放创建ES连接器相关的一些参数
 *
 * @author ziqiang.wang
 * @date 2021/10/20 18:23
 */
package object es extends Serializable {

  /**
   * 必选<br>
   * 连接es的集群的一个或多个主机地址，格式：'http://host_name:9092;http://host_name:9093'
   */
  var sinkHostsP: String = "sink.hosts"
  /**
   * 必选<br>
   * 索引前缀<br>
   * 比如："myIndex-"；
   */
  var sinkIndexP: String = "sink.index"
  /**
   * 写入ES之前最多缓存多少条数据，默认1000条
   */
  var sinkBulkFlushMaxActionsP: String = "sink.bulkFlushMaxActions"
  /**
   * 写入ES之前最多缓存多少size的数据，默认2M，单位：M
   */
  var sinkBulkFlushMaxSizeMbP: String = "sink.bulkFlushMaxSizeMb"
  /**
   * 写入ES的时间间隔，不管是否达到了数量或size的条件，到指定时间间隔都会触发flush，默认为1秒，单位：秒
   */
  var sinkBulkFlushIntervalP: String = "sink.bulkFlushInterval"
  /**
   * 是否在checkpoint成功之后将数据flush到es，默认为false。如果设置了文档id，在多次写入的情况下，不会有数据重复。如果没有文档id，则可能造成写入数据重复，开启checkpoint可避免重复写入。
   */
  var sinkFlushOnCheckpointP: String = "sink.flushOnCheckpoint"
  /**
   * ES Sink的重试次数,默认8次
   */
  var sinkBulkFlushBackoffRetriesP: String = "sink.bulkFlushBackoffRetries"

  /**
   * ES7认证用户 不为空则开启
   */
  var sinkUsernameP = "sink.username"
  /**
   * ES7认证密码 不为空则开启
   */
  var sinkPasswordP = "sink.password"

}
